package lucky.xiong.basic.哈希;

import java.util.HashSet;

public class JAVA中的计算HASHCODE {

    static class Book{
        int id;

    }

    public static void main(String[] args) {


        // new 一个对象多少次会冲突
        System.out.println("法二");
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < 11 * 10000; i++) {
            // hashcode 是 native方法， 和操作系统提供的有关
            int code = new Book().hashCode();
            if (set.contains(code)){
                System.out.printf("发生了hash冲突，在第 %d 次，值是 %s%n",i, code);
            }else{
                set.add(code);
            }
        }
        System.out.printf("hash set 的size为 %d", set.size());

//        m1();

    }

    /**
     * 请你写出一个hashcode冲突的案例
     */
    private static void m1() {

        System.out.println("法一");
        System.out.println("AA".hashCode());
        System.out.println("BB".hashCode());
        System.out.println("-----");
        System.out.println("Aa".hashCode());
        System.out.println("BB".hashCode());
        System.out.println("-----");
        System.out.println("柳柴".hashCode());
        System.out.println("柴柕".hashCode());
    }
}
